const fs = require('fs');

const path = require("path");

const { name } = require('./package');

const isProduction = process.env.NODE_ENV === 'production';

const TerserPlugin = require('terser-webpack-plugin');

module.exports = {
	// 基本路径
	// publicPath: `./`,
	// 输出文件目录
	outputDir: 'dist',
	// 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。
	assetsDir: "static",
	// 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径
	// indexPath: './',
	filenameHashing: true,
	// eslint-loader 是否在保存的时候检查
	lintOnSave: false,
	// webpack配置
	// see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
	// chainWebpack: config => {
	// 	config
	// 		.entry('index')
	// 		.add('babel-polyfill')
	// 		.end();
	// 	// 配置别名
	// 	config.resolve.alias
	// 		.set("@", path.resolve(__dirname,"src"));
	// 	// 修改标题
	// 	config
	// 	    .plugin('html')
	// 	    .tap(args => {
	// 	      args[0].title = 'test';
	// 	      return args;
	// 	    })
	// 	// 删除预加载
	// 	config.plugins.delete('preload');
	// 	config.plugins.delete('prefetch');
	// 	// 生产环境配置
	// 	if (isProduction) {
			
	// 		// 压缩代码
	// 		config.optimization.minimize(true);
	// 		// 分割代码
	// 		config.optimization.splitChunks({
	// 			chunks: 'all'
	// 		})
	// 	}
	// },
	configureWebpack: {
		resolve: {
			alias: {
			  	'@': path.join(__dirname,"src"),
			},
		},
		output: {
			library: `${name}-[name]`,
			libraryTarget: 'umd', // 把微应用打包成 umd 库格式
			jsonpFunction: `webpackJsonp_${name}`,
		},
	},
	// configureWebpack: config => {
	// 	if (isProduction) {
	// 		// 为生产环境修改配置...
	// 		let optimization = {
	// 			minimizer: [new TerserPlugin({
	// 				parallel: 4, // 并行打包
	// 				terserOptions: {
	// 					warnings: false,
	// 					compress: {
	// 						drop_debugger: true,
	// 						drop_console: true,
	// 					},
	// 				}
	// 			})]
	// 		}
	// 		Object.assign(config, { optimization });
	// 	} else {
	// 		// 为开发环境修改配置...
	// 	}
	// },
	// 生产环境是否生成 sourceMap 文件
	productionSourceMap: false,
	// css相关配置
	css: {
		// 是否使用css分离插件 ExtractTextPlugin
		extract: true,
		// 开启 CSS source maps?
		sourceMap: false,
		// css预设器配置项
		loaderOptions: {},
		// 启用 CSS modules for all css / pre-processor files.
		requireModuleExtension: true,
	},
	// use thread-loader for babel & TS in production build
	// enabled by default if the machine has more than 1 cores
	parallel: require('os').cpus().length > 1,
	devServer: {
		port: 5557, // 端口
		open: false, // 自动开启浏览器
		compress: false,
		hot: true,
		disableHostCheck: true,
		host:'0.0.0.0',
		overlay: { warnings: false, errors: true },
		headers: {
			'Access-Control-Allow-Origin': '*',
		},
		// 本地设置https
		// https: {
		//     key: fs.readFileSync(
		//         path.join(__dirname, 'certs', 'ssl.key')
		//     ),
		//     cert: fs.readFileSync(
		//         path.join(__dirname, 'certs', 'ssl.crt')
		//     ),
		// },
		proxy: {
			'/':{target:'https://new.tencent365.work',changeOrigin: true},
		}
	},
}